home *** CD-ROM | disk | FTP | other *** search
- #include "qtools.h"
-
- struct memory bspStatic;
- struct memory *bspMem = &bspStatic;
-
- /*
- * ===========
- * main
- * ===========
- */
- int main(int argc, char **argv)
- {
- char portalfile[NAMELEN_PATH];
- char source[NAMELEN_PATH];
- int i;
- int level = 2;
- FILE *bspFile;
-
- memset(bspMem, 0, sizeof(struct memory));
- if (!setjmp(eabort)) {
- mprintf("----- Vis ---------------\n");
-
- for (i = 1; i < argc; i++) {
- if (!strcmp(argv[i], "-fast")) {
- mprintf("fastvis = true\n");
- bspMem->visOptions |= VIS_FAST;
- }
- else if (!strcmp(argv[i], "-level")) {
- testvislevel = atoi(argv[i + 1]);
- mprintf("testvislevel = %i\n", testvislevel);
- i++;
- }
- else if (!strcmp(argv[i], "-v")) {
- mprintf("verbose = true\n");
- bspMem->visOptions |= VIS_VERBOSE;
- }
- else if (argv[i][0] == '-')
- Error("Unknown option \"%s\"", argv[i]);
- else
- break;
- }
-
- if (i != argc - 1)
- Error("usage: vis [-level 0-4] [-fast] [-v] bspfile");
-
- strcpy(source, argv[i]);
- ReplaceExt(source, "bsp");
- if((bspFile = fopen(source, READWRITE_BINARY_OLD))) {
- if((bspMem = LoadBSP(bspFile, ALL_QUAKE1_LUMPS & (~LUMP_VISIBILITY), BSP_VERSION_Q1))) {
- char *prtBuf;
-
- strcpy(portalfile, argv[i]);
- ReplaceExt(portalfile, "prt");
-
- if((prtBuf = (char *)GetVoid(portalfile))) {
- if(vis(bspMem, level, prtBuf) == FALSE)
- eprintf("failed to calculate vis-lump\n");
- else
- WriteBSP(bspFile, bspMem);
-
- tfree(prtBuf);
- }
- else
- eprintf("failed to load portalfile %s\n", portalfile);
-
- PrintClusters(bspMem, LUMP_VISIBILITY, TRUE);
- FreeClusters(bspMem, 0);
- }
- else
- eprintf("failed to load bspfile %s\n", source);
-
- fclose(bspFile);
- }
- else
- eprintf("failed to open bspfile %s\n", source);
- }
-
- return 0;
- }
-